package com.edu.poli.ces3.client;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.IsWidget;
import com.google.gwt.user.client.ui.Widget;
import com.sencha.gxt.cell.core.client.form.ComboBoxCell;
import com.sencha.gxt.data.shared.ListStore;
import com.sencha.gxt.data.shared.StringLabelProvider;
import com.sencha.gxt.widget.core.client.form.TextField;
import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.form.ComboBox;
import com.sencha.gxt.widget.core.client.form.DateField;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.form.NumberField;
import com.sencha.gxt.widget.core.client.form.NumberPropertyEditor;
import com.sencha.gxt.widget.core.client.form.PasswordField;
import com.sencha.gxt.widget.core.client.form.SimpleComboBox;
import com.sencha.gxt.widget.core.client.grid.ColumnModel;
import com.sencha.gxt.widget.core.client.grid.Grid;
import com.sencha.gxt.widget.core.client.grid.GridView;
import com.sencha.gxt.widget.core.client.info.Info;
import java.sql.Date;
import java.util.List;
import javax.swing.JComboBox;

/**
 *
 * @author sala302
 */
public class Prueba {

    private final FramedPanel Panel;
    private TextField txtId;
    private TextField txtNombre;
    private TextField txtApellido;
    private PasswordField txtClave;
    private DateField txtNacimiento;
    private SimpleComboBox cmbGenero;
    private ComboBox cbxUsuarios;
    private NumberField nbrCedula;
    private Grid grid;

    VerticalLayoutContainer container = new VerticalLayoutContainer();

    public Prueba() {
        
        Panel = new FramedPanel();
        Panel.setHeadingText("Prueba");
        Panel.setCollapsible(true);

        Panel.add(container);
        container.setHeight(400);

        container.add(initTxtId());
        container.add(initTxtNombre());
        container.add(initTxtApellido());
        container.add(initTxtClave());
        container.add(initTxtNacimiento());
        container.add(initcmbGenero());
        container.add(initcbxUsuarios());

        container.add(initBotonBuscar());
        container.add(initBotonGuardar());
        container.add(initBotonActualizar());
        container.add(initBotonEliminar());
        
       

    }
    

   
    public FramedPanel getPanel() {
        return Panel;
    }

    private IsWidget initTxtId() {
        txtId = new TextField();
        txtId.setAllowBlank(false);
        return new FieldLabel(txtId, "Id");
    }

    private IsWidget initTxtNombre() {
        txtNombre = new TextField();
        txtNombre.setAllowBlank(false);
        return new FieldLabel(txtNombre, "Nombre");
    }

    private IsWidget initTxtApellido() {
        txtApellido = new TextField();
        txtApellido.setAllowBlank(false);
        return new FieldLabel(txtApellido, "Apellido");
    }

    private IsWidget initTxtClave() {
        txtClave = new PasswordField();
        txtClave.setAllowBlank(false);
        return new FieldLabel(txtClave, "Clave");
    }

    private IsWidget initTxtNacimiento() {
        txtNacimiento = new DateField();
        txtNacimiento.setAllowBlank(false);
        return new FieldLabel(txtNacimiento, "Fecha Nacimiento");
    }

    private IsWidget initcmbGenero() {
        cmbGenero = new SimpleComboBox<String>(new StringLabelProvider<String>());
        cmbGenero.add("Femenino");
        cmbGenero.add("Masculino");
        return new FieldLabel(cmbGenero, "Genero");
    }

    private IsWidget initcbxUsuarios() {
        PropUsuarios propiedades = GWT.create(PropUsuarios.class);
        ListStore<tbl_usuarios> datos = new ListStore<tbl_usuarios>((propiedades.key()));
        tbl_usuarios usuario = new tbl_usuarios();
        usuario.setId_Usuario("123");
        usuario.setNombre("Deisy");
        datos.add(usuario);
        
        cbxUsuarios = new ComboBox<tbl_usuarios>(datos, propiedades.label());
        cbxUsuarios.setTriggerAction(ComboBoxCell.TriggerAction.ALL);
        return new FieldLabel(cbxUsuarios, "Usuarios ejm");
        
        
                
    }

    private Widget initBotonGuardar() {
        TextButton btn = new TextButton("Guardar") {

            @Override
            protected void onClick(Event event) {
                super.onClick(event); //To change body of generated methods, choose Tools | Templates.
                Info.display("Saludo", "Hola" + nbrCedula.getValue());
            }

        };

        return btn;

    }

    private Widget initBotonActualizar() {
        TextButton btn = new TextButton("Actualizar") {

            @Override
            protected void onClick(Event event) {
                super.onClick(event); //To change body of generated methods, choose Tools | Templates.
                Info.display("Saludo", "Hola" + nbrCedula.getValue());
            }

        };

        return btn;

    }

    private Widget initBotonEliminar() {
        TextButton btn = new TextButton("Eliminar") {

            @Override
            protected void onClick(Event event) {
                super.onClick(event); //To change body of generated methods, choose Tools | Templates.
                Info.display("Saludo", "Hola" + nbrCedula.getValue());
            }

        };

        return btn;

    }

    private Widget initBotonBuscar() {
        TextButton btn = new TextButton("Buscar") {

            @Override
            protected void onClick(Event event) {
                super.onClick(event); //To change body of generated methods, choose Tools | Templates.
                Info.display("Saludo", "Hola" + nbrCedula.getValue());
            }

        };

        return btn;

    }
      ListStore<tbl_usuarios> datos = new ListStore<tbl_usuarios>((propiedades.key()));
   
      final Grid = new Grid<tbl_usuarios>(datos, cm) {
         @Override
         protected void onAfterFirstAttach() {
           super.onAfterFirstAttach();
           Scheduler.get().scheduleDeferred(new ScheduledCommand() {
             @Override
             public void execute() {
               loader.load();
             }
           });
         }
     };
}
